ECMAScript 2024
JavaScript 2024 இல் புதிய அம்சங்கள்
| அம்சம் | விளக்கம் |
|---|---|
Object.groupBy() |
ஒரு callback செயல்பாட்டிலிருந்து திருப்பி விடப்பட்ட மதிப்புகளுக்கு ஏற்ப பொருள் உறுப்புகளைக் குழுவாக்குகிறது |
Map.groupBy() |
ஒரு callback செயல்பாட்டிலிருந்து திருப்பி விடப்பட்ட மதிப்புகளுக்கு ஏற்ப map உறுப்புகளைக் குழுவாக்குகிறது |
String isWellFormed() |
ஒரு சரம் நன்கு உருவாக்கப்பட்டிருந்தால் true திருப்பித் தரும் |
String.toWellFormed() |
"lone surrogates" Unicode U+FFFD உடன் மாற்றப்பட்ட புதிய சரத்தைத் திருப்பித் தரும் |
Promise.withResolvers() |
|
Atomics.waitAsync |
எச்சரிக்கை:
இந்த அம்சங்கள் ஒப்பீட்டளவில் புதியவை.
பழைய உலாவிகளுக்கு மாற்று குறியீடு (Polyfill) தேவைப்படலாம்.
JavaScript Object.groupBy()
எடுத்துக்காட்டு
// Create an Array
const fruits = [
{name:"apples", quantity:300},
{name:"bananas", quantity:500},
{name:"oranges", quantity:200},
{name:"kiwi", quantity:150}
];
// Callback function to Group Elements
function myCallback({ quantity }) {
return quantity > 200 ? "ok" : "low";
}
// Group by Quantity
const result = Object.groupBy(fruits, myCallback);
விளக்கம்
Object.groupBy() முறை ஒரு callback செயல்பாட்டிலிருந்து திருப்பி விடப்பட்ட சரம் மதிப்புகளுக்கு ஏற்ப ஒரு பொருளின் உறுப்புகளைக் குழுவாக்குகிறது.
Object.groupBy() முறை ஒரு புதிய பொருளைத் திருப்பித் தரும்.
Object.groupBy() முறை அசல் பொருளை மாற்றாது.
குறிப்பு:
அசல் மற்றும் திருப்பி விடப்பட்ட பொருளில் உள்ள உறுப்புகள் ஒன்றே.
எதிர்கால மாற்றங்கள் அசல் மற்றும் திருப்பி விடப்பட்ட இரண்டு பொருள்களிலும் பிரதிபலிக்கும்.
JavaScript Map.groupBy()
எடுத்துக்காட்டு
// Create a Map
const fruits = [
{name:"apples", quantity:300},
{name:"bananas", quantity:500},
{name:"oranges", quantity:200},
{name:"kiwi", quantity:150}
];
// Callback function to Group Elements
function myCallback({ quantity }) {
return quantity > 200 ? "ok" : "low";
}
// Group by Quantity
const result = Map.groupBy(fruits, myCallback);
விளக்கம்
Map.groupBy() முறை ஒரு callback செயல்பாட்டிலிருந்து திருப்பி விடப்பட்ட சரம் மதிப்புகளுக்கு ஏற்ப ஒரு map இன் உறுப்புகளைக் குழுவாக்குகிறது.
Map.groupBy() முறை ஒரு புதிய map ஐத் திருப்பித் தரும்.
Map.groupBy() முறை அசல் பொருளை மாற்றாது.
குறிப்பு:
அசல் மற்றும் திருப்பி விடப்பட்ட பொருளில் உள்ள உறுப்புகள் ஒன்றே.
எதிர்கால மாற்றங்கள் அசல் மற்றும் திருப்பி விடப்பட்ட இரண்டு பொருள்களிலும் பிரதிபலிக்கும்.
Object.groupBy() vs Map.groupBy()
Object.groupBy() மற்றும் Map.groupBy() இடையே உள்ள வேறுபாடு:
Object.groupBy()
உறுப்புகளை ஒரு JavaScript பொருளாக குழுவாக்குகிறது
Map.groupBy()
உறுப்புகளை ஒரு Map பொருளாக குழுவாக்குகிறது
JavaScript String isWellFormed()
isWellFormed() முறை ஒரு சரம் நன்கு உருவாக்கப்பட்டிருந்தால் true திருப்பித் தரும்.
இல்லையெனில் false திருப்பித் தரும்.
ஒரு சரத்தில் lone surrogates இருந்தால் அது நன்கு உருவாக்கப்படவில்லை.
எடுத்துக்காட்டுகள்
let text = "Hello world!";
let result = text.isWellFormed();
let text = "Hello World \uD800";
let result = text.isWellFormed();
Lone Surrogates
Lone surrogate என்பது UTF-16 குறியாக்கத்தில் எழுத்துகளைக் குறிக்க பயன்படுத்தப்படும் ஒரு செல்லுபடியாகும் surrogate இணையின் பகுதியாக இல்லாத ஒரு Unicode surrogate குறியீடு புள்ளியாகும்.
JavaScript String toWellFormed()
String.toWellFormed() முறை அனைத்து "lone surrogates" களும் Unicode replacement character (U+FFFD) உடன் மாற்றப்பட்ட புதிய சரத்தைத் திருப்பித் தரும்.
எடுத்துக்காட்டுகள்
let text = "Hello World \uD800";
let result = text.toWellFormed();
JavaScript Promise.withResolvers()
Promise.withResolvers() என்பது Promiseகளின் உருவாக்கம் மற்றும் மேலாண்மையை எளிதாக்கும் ஒரு நிலையான முறையாகும்.
Promise.withResolvers() ஒரு Promise உடன் தொடர்புடைய resolve மற்ற reject செயல்பாடுகளை அதன் executor செயல்பாட்டிற்கு வெளியே அணுகுவதற்கு மிகவும் வசதியான வழியை வழங்குகிறது.
பாரம்பரிய new Promise((resolve, reject) => { ... }) constructor முறைக்குப் பதிலாக, Promise.withResolvers() பின்வரும் பொருளைத் திருப்பித் தரும்:
promise: புதிதாக உருவாக்கப்பட்ட Promise உதாரணம்resolve: ஒரு Promise ஐ ஒரு மதிப்புடன் நிறைவேற்றும் செயல்பாடுreject: ஒரு காரணத்துடன் (பிழை) Promise ஐ நிராகரிக்கும் செயல்பாடு
எடுத்துக்காட்டு
<p id="demo">Waiting...</p>
<script>
const {promise, resolve, reject} = Promise.withResolvers();
// You can now use 'resolve' and 'reject' anywhere
// in your code to control the state of 'promise'.
// Simulate async work
setTimeout(() => {
const success = Math.random() > 0.5;
if (success) {
resolve("Operation successful!");
} else {
reject("Operation failed!");
}
}, 1000);
// Update the UI when the promise finishes
promise
.then((message) => {
document.getElementById("demo").innerHTML = message;
})
.catch((error) => {
document.getElementById("demo").innerHTML = error; ;
});
</script>
எடுத்துக்காட்டு விளக்கம்
<p id="demo">ஆரம்பத்தில் "Waiting..." எனக் காட்டுகிறது- 1 வினாடிக்குப் பிறகு, Promise resolve அல்லது reject செய்கிறது
- முடிவு "demo" இல் எழுதப்படுகிறது
ECMAScript 2024 பயிற்சி
இந்த பயிற்சி உங்கள் ECMAScript 2024 புதிய அம்சங்கள் பற்றிய அறிவைச் சோதிக்க உதவும்.